﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace AplicacionUrHardwarez
{
    public partial class formAlta : Form
    {
        AlmacenEntities productosContext;
        formProductos formularioProductos = new formProductos();

        public formAlta()
        {
            InitializeComponent();
        }

        private void btnAltaCancelar_Click(object sender, EventArgs e)
        {
            formProductos productos = new formProductos();
            productos.Visible = true;
            this.Visible = false;
            productos.Location = this.Location;
        }

        //public Transactions()
        //{
        //    //HACK: To prevent this error: {"SqlDateTime overflow. Must be between 1/1/1753 12:00:00 AM and 12/31/9999 11:59:59 PM."}
        //    this.LastModified = System.DateTime.Now;
        //}

        private void btnAltaGuardar_Click(object sender, EventArgs e)
        {


            using (AlmacenEntities productosContext =
                                                     new AlmacenEntities())
            {
                //Guid obtenerGuid = new Guid(lblModificarID.Text);
                float precioFloat = float.Parse(txtAltaPrecio.Text);
                int stockInt = int.Parse(txtAltaStock.Text);


                // Añadimos los valores a la tabla de Productos, incluyendo los cambios. 
                
                Producto AltaProducto = new Producto();
                AltaProducto.ID = Guid.NewGuid();
                AltaProducto.Codigo = txtAltaCodigo.Text;
                AltaProducto.Nombre = txtAltaNombre.Text;
                AltaProducto.Descripcion = txtAltaDescripcion.Text;
                AltaProducto.Precio = precioFloat;
                AltaProducto.Stock = stockInt;

                //modificacion.Codigo = "nuevoCod";
                //modificacion.Nombre = "Producto3";
                //modificacion.Descripcion = "insert prueba";
                //modificacion.Precio = 3.99;
                //modificacion.Stock = 15;

                Entrada AltaEntrada = new Entrada();
                AltaEntrada.ID = Guid.NewGuid();
                AltaEntrada.StockIn = 0;
                AltaEntrada.Fecha = System.DateTime.UtcNow;
                AltaEntrada.IdProducto = AltaProducto.ID;

                Salida AltaSalida = new Salida();
                AltaSalida.ID = Guid.NewGuid();
                AltaSalida.StockOut = 0;
                AltaSalida.Fecha = System.DateTime.UtcNow;
                AltaSalida.IdProducto = AltaProducto.ID;

                try
                {
                    //productosContext.Productos.AddObject(modificacion);

                    productosContext.AddToProductos(AltaProducto);
                    productosContext.AddToEntradas(AltaEntrada);
                    productosContext.AddToSalidas(AltaSalida);
                    productosContext.SaveChanges();
                    
                    MessageBox.Show("nuevo producto añadido a la base de datos correctamente!");


                    //Cerramos formulario modificar
                    this.Close();
                    formularioProductos.Visible = true;
                    this.Visible = false;
                    formularioProductos.Location = this.Location;


                }
                catch (Exception)
                {
                    //Console.WriteLine(ex.InnerException);
                    MessageBox.Show("No se ha podido añadir el nuevo producto");
                }


            }
        }
    }
}




